import 'package:json_annotation/json_annotation.dart';
import "user.dart";
part 'repo.g.dart';

@JsonSerializable()
class Repo {
  Repo();

  late num id;
  late String node_id;
  late String name;
  late String full_name;
  late bool private;
  late User owner;
  Repo? parent;
  late String html_url;
  String? description;
  late bool fork;
  late String url;
  late String forks_url;
  late String keys_url;
  late String collaborators_url;
  late String teams_url;
  late String hooks_url;
  late String issue_events_url;
  late String events_url;
  late String assignees_url;
  late String branches_url;
  late String tags_url;
  late String blobs_url;
  late String git_tags_url;
  late String git_refs_url;
  late String trees_url;
  late String statuses_url;
  late String languages_url;
  late String stargazers_url;
  late String contributors_url;
  late String subscribers_url;
  late String subscription_url;
  late String commits_url;
  late String git_commits_url;
  late String comments_url;
  late String issue_comment_url;
  late String contents_url;
  late String compare_url;
  late String merges_url;
  late String archive_url;
  late String downloads_url;
  late String issues_url;
  late String pulls_url;
  late String milestones_url;
  late String notifications_url;
  late String labels_url;
  late String releases_url;
  late String deployments_url;
  late String created_at;
  late String updated_at;
  late String pushed_at;
  late String git_url;
  late String ssh_url;
  late String clone_url;
  late String svn_url;
  late String homepage;
  late num size;
  late num stargazers_count;
  late num watchers_count;
  String? language;
  late bool has_issues;
  late bool has_projects;
  late bool has_downloads;
  late bool has_wiki;
  late bool has_pages;
  late num forks_count;
  String? mirror_url;
  late bool archived;
  late bool disabled;
  late num open_issues_count;
  Map<String,dynamic>? license;
  late bool allow_forking;
  late bool is_template;
  late List topics;
  late String visibility;
  late num forks;
  late num open_issues;
  late num watchers;
  late String default_branch;
  late Map<String,dynamic> permissions;
  
  factory Repo.fromJson(Map<String,dynamic> json) => _$RepoFromJson(json);
  Map<String, dynamic> toJson() => _$RepoToJson(this);
}
